/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package produccion;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author PRE PRENSA01
 * 
 * 
 */

public abstract class Publicacion {

    private String titulo;
    private String cliente;
    private Formato formato;
    private Integer tiraje;
    private Cubierta cubierta;
    private List<InteriorCompaginable> interioresCompaginables = new ArrayList<InteriorCompaginable>();
    private List<InteriorNoCompaginable> interioresNoCompaginables = new ArrayList<InteriorNoCompaginable>();
    
    public Publicacion() {
    }

    public Publicacion(String titulo, String cliente, Formato formato, Integer tiraje) {
        this.titulo = titulo;
        this.cliente = cliente;
        this.formato = formato;
        this.tiraje = tiraje;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getCliente() {
        return cliente;
    }

    public void setCliente(String cliente) {
        this.cliente = cliente;
    }

    public Formato getFormato() {
        return formato;
    }

    public void setFormato(Formato formato) {
        this.formato = formato;
    }

    public Integer getTiraje() {
        return tiraje;
    }

    public void setTiraje(Integer tiraje) {
        this.tiraje = tiraje;
    }

    public Cubierta getCubierta() {
        return cubierta;
    }

    public void setCubierta(Cubierta cubierta) {
        this.cubierta = cubierta;
    }

    public List<InteriorCompaginable> getInterioresCompaginables() {
        return interioresCompaginables;
    }

    public void setInterioresCompaginables(List<InteriorCompaginable> interioresCompaginables) {
        this.interioresCompaginables = interioresCompaginables;
    }

    public List<InteriorNoCompaginable> getInterioresNoCompaginables() {
        return interioresNoCompaginables;
    }

    public void setInterioresNoCompaginables(List<InteriorNoCompaginable> interioresNoCompaginables) {
        this.interioresNoCompaginables = interioresNoCompaginables;
    }
    
    
    public Double calcularPliegos(){
        double pliegos=0;
        for (InteriorCompaginable  i : getInterioresCompaginables()) {
            pliegos += i.calcularPliegos();
        }
        return pliegos;
    }
    
    public abstract Double calcularPlacas();
    public abstract Double calcularTiempoImpresion();
}

